(XTread_socket, ConfigureNotify case):
authorRichard M. Stallman <rms@gnu.org>
Tue, 25 May 1993 01:00:21 +0000 (01:00 +0000)
committerRichard M. Stallman <rms@gnu.org>
Tue, 25 May 1993 01:00:21 +0000 (01:00 +0000)
Convert from parent window, not Emacs window.
(XTread_socket): Handle ReparentNotify events.

(XTread_socket): For ConfigureNotify event,
translate coordinates if send_event field is false
provided the x-coord value is not large.

src/xterm.c

index 8970185967c4f1901c09f9304a39bc0d0c395746..046cf5100a64a794a3bb7a81fe41a4445b213624 100644 (file)
@@ -2697,6 +2697,12 @@ XTread_socket (sd, bufp, numchars, waitp, expected)
 #endif
          break;
 
+       case ReparentNotify:
+         f = x_window_to_frame (event.xreparent.window);
+         if (f)
+           f->display.x->parent_desc = event.xreparent.parent;
+         break;
+
        case Expose:
          f = x_window_to_frame (event.xexpose.window);
          if (f)
@@ -3090,21 +3096,18 @@ XTread_socket (sd, bufp, numchars, waitp, expected)
                  SET_FRAME_GARBAGED (f);
                }
 
-             if (! event.xconfigure.send_event
-                 /* Sometimes we get root-relative coordinates
-                    even tho send_event is 0.
-                    This is not a perfectly reliable way of distinguishing,
-                    but it does the right thing except in a case
-                    where it doesn't hurt much to be wrong.  */
-                 && event.xconfigure.x < 20)
+             if (! event.xconfigure.send_event)
                {
                  Window win, child;
                  int win_x, win_y;
 
+                 /* Coords are relative to the parent.
+                    Convert them to root-relative.  */
                  XTranslateCoordinates (x_current_display,
                               
                                         /* From-window, to-window.  */
-                                        event.xconfigure.window, ROOT_WINDOW,
+                                        f->display.x->parent_desc,
+                                        ROOT_WINDOW,
 
                                         /* From-position, to-position.  */
                                         event.xconfigure.x,